<?php

namespace app\common\validate;

use JetBrains\PhpStorm\NoReturn;

class StoreValidate extends BaseValidate
{
    /**
     * 验证规则
     */
    protected $field = [
        'store_name'          => '门店名称',
        'store_code'          => '项目单元编号',
        'store_cover_url'     => '门店封面',
        'store_banner'        => '门店轮播图',
        'store_type_id'       => '门店星级',
        'store_province'      => '省',
        'store_city'          => '市',
        'store_area'          => '区',
        'store_address'       => '详细地址',
        'store_jd'            => '经度',
        'store_wd'            => '纬度',
        'store_tel'           => '门店电话：',
        'store_busines_start' => '营业时间-开始时间',
        'store_busines_end'   => '营业时间-结束时间',
    ];

    /**
     * 验证场景
     */
    protected $scene = [
        'index'  => [
            "keyword",
            "store_province" => "chs",
            "store_city"     => "chs",
            "store_type_id"  => 'integer',
            "is_detele"      => 'integer|in:0,1',
            "page_index"      => 'integer',
            "page_size"      => 'integer'
        ],
        'save'   => [
            'store_name'          => 'require|chsDash|unique:store',
            'store_code'          => 'require|alphaDash|unique:store',
            'store_cover_url'     => 'require',
            'store_banner'        => 'require|array',
            'store_type_id'       => 'require|integer',
            'store_province'      => 'require',
            'store_city'          => 'require|chs',
            'store_area'          => 'require|chs',
            'store_address'       => 'require',
            'store_jd'            => 'require|float',
            'store_wd'            => 'require|float',
            'store_tel'           => 'require',
            'store_business_time' => 'require|array|checkStoreBusinessTimeList',
            'store_business_day'
        ],
        'update' => [
            'store_id'            => 'require|integer',
            'store_name'          => 'chsDash|unique:store',
            'store_code'          => 'alphaDash|unique:store',
            'store_cover_url',
            'store_banner'        => 'array',
            'store_type_id'       => 'integer',
            'store_province'      => 'chs',
            'store_city'          => 'chs',
            'store_area'          => 'chs',
            'store_address',
            'store_jd'            => 'float',
            'store_wd'            => 'float',
            'store_tel',
            'store_business_day',
            'store_business_time' => 'require|array|checkStoreBusinessTimeList',
        ],
        'delete' => [
            'store_id' => 'require|integer',
        ],
        'read'   => [
            'store_id' => 'require|integer',
        ]
    ];

    /**
     * 提示消息
     */
    protected $message = [

    ];

    public function checkStoreBusinessTimeList($value)
    {
        if (!$value) {
            return true;
        }
        foreach ($value as $v) {
            if (!$v['start_time']) {
                return '开始时间不能为空';
            }
            if (!$v['end_time']) {
                return '结束时间不能为空';
            }
        }
        return true;
    }

}
